Computer systems, like home computers or high-end computers operated as servers, utilize firmware. Firmware may be programs executable by a processor, but the programs may be stored in non-volatile solid-state memory, such as read-only memory (ROM). In computer systems such as these, the firmware may provide functionality such as low level input/output programs, power-on self tests (POST) procedures, and the like.
Add-in cards or devices of a computer system may rely on their own firmware. These add-in devices may comprise modems, network interface cards (NICs), graphics drivers, disk driver controllers, and the like. In cases where multiple add-in devices of the same family are present, differing firmware versions and/or release numbers may cause incompatibilities or inoperability among the multiple devices.
Updating firmware, whether of the computer system or add-in cards, may be a time-consuming and labor-intensive process. Updating may require booting the computer system from an externally-supplied device, such as a floppy disk drive or a CD ROM, copying an updated firmware image from the externally-supplied device into the computer system, and then flashing or updating the image into the appropriate non-volatile device.